AMI を Amazon S3 バケットへ保存する際に、フォルダを指定することは可能ですか?
困っていること
AWS CLI コマンド create-store-image-task
を使用して、AMI を Amazon S3 バケットに保存したいです。
Amazon S3 バケットの特定のフォルダへ保管することはできますか?
どう対応すればいいの?
Amazon S3 バケットへ AMI を保存する際に、プレフィックスを含めたキー名の指定が可能です。
プレフィックスを含めたキー名を指定して、AMI を復元することも可能です。
やってみた
AWS CLI コマンド create-store-image-task
の--bucket
オプションに、バケット名/プレフィックス名
を追加することで、プレフィックス名を含めたキー名として保管できました。
$ aws ec2 create-store-image-task --image-id ami-<amiid> --bucket <バケット名>/test { "ObjectKey": "test/ami-<amiid>.bin" }
また、AWS CLI コマンドcreate-restore-image-task
の--object-key
オプションにプレフィックス名/オブジェクト名
と指定しても、リストアが可能であることを確認しました。
$ aws ec2 create-restore-image-task --bucket <バケット名> --object-key test/ami-<amiid>.bin --name "New AMI Name" { "ImageId": "ami-<AMIID>" }
なお、Amazon S3 においてはフォルダという概念はなく、"/" は区切り文字として扱われます。"/" で区切ることで、Amazon S3 マネジメントコンソール上ではフォルダのように見せることができます。
参考資料
create-store-image-task — AWS CLI 1.27.152 Command Reference
create-restore-image-task — AWS CLI 1.27.152 Command Reference